package com.elrichuang.userserver.enums;

import java.util.Objects;

/**
 * 求职者状态枚举类
 * 0未面试
 * 100面试通过
 * 110面试不通过
 * 120复试
 * 200待培训
 * 210正在培训
 * 220劝退
 * 230自离
 * 232放弃
 * 240培训通过
 * 300待跟单
 * 310跟单通过
 * 320跟单不通过
 * 400待入职
 * 410入职成功
 * 420入职失败
 * @author elric
 * @date 2022-03-01
 */
public enum CandidateStatusEnum {

	CANDIDATE_STATUS_NONE("-1","未知状态"),

	/**
	 * 求职者状态，0未面试
	 */
	CANDIDATE_STATUS_NO_INTERVIEWS("0", "未面试"),

	/**
	 * 求职者状态，100面试通过
	 */
	CANDIDATE_STATUS_TO_BE_BODY_CHECK("100", "面试通过（待体检）"),

	/**
	 * 求职者状态，110面试不通过
	 */
	CANDIDATE_STATUS_INTERVIEW_NOT_PASS("110", "面试不通过"),

	/**
	 * 求职者状态，120面试复试
	 */
	CANDIDATE_STATUS_INTERVIEW_RETRIAL("120", "待复试"),

	/**
	 * 求职者状态，125体检通过
	 */
	CANDIDATE_STATUS_BODY_CHECK_PASSED("125", "体检通过"),

	/**
	 * 求职者状态，130体检不通过
	 */
	CANDIDATE_STATUS_BODY_CHECK_NOT_PASS("130", "体检不通过"),

	/**
	 * 求职者状态，200待培训
	 */
	CANDIDATE_STATUS_TO_BE_TRAINED("200", "待培训"),

	/**
	 * 求职者状态，210正在培训
	 */
	CANDIDATE_STATUS_TRAINING("210", "正在培训"),

	/**
	 * 求职者状态，220劝退
	 */
	CANDIDATE_STATUS_DISSUADE("220", "劝退"),

	/**
	 * 求职者状态，230自离
	 */
	CANDIDATE_STATUS_WALK_AWAY("230", "自离"),

	/**
	 * 求职者状态，232放弃
	 */
	CANDIDATE_STATUS_GIVE_UP("232", "放弃"),

	/**
	 * 求职者状态，240培训通过
	 */
	CANDIDATE_STATUS_TRAINING_PASSED("240", "待分配站点"),


	/**
	 * 求职者状态，235培训通过（待体检）
	 */
	CANDIDATE_STATUS_TRAINING_PASSED_TO_BE_BODY_CHECK("245", "培训通过（待体检）"),

	/**
	 * 求职者状态，235培训通过（待体检）
	 */
	CANDIDATE_STATUS_TRAINING_PASSED_WAITING_MASTER("248", "待分配师傅"),


	/**
	 * 求职者状态，250培训不通过
	 */
	CANDIDATE_STATUS_TRAINING_NOT_PASS("250", "培训不通过"),

	/**
	 * 求职者状态，300待跟单
	 */
	CANDIDATE_STATUS_TO_BE_ORDER("300", "待跟单"),

	/**
	 * 求职者状态，305跟单中
	 */
	CANDIDATE_STATUS_ORDERING("305", "跟单中"),

	/**
	 * 求职者状态，310跟单通过
	 */
	CANDIDATE_STATUS_ORDER_PASSED("310", "跟单通过"),

	/**
	 * 求职者状态，320跟单不通过
	 */
	CANDIDATE_STATUS_ORDER_NOT_PASS("320", "跟单不通过"),

	/**
	 * 求职者状态，400待入职
	 */
	CANDIDATE_STATUS_TO_BE_ENTRY("400", "待入职"),

	/**
	 * 求职者状态，410入职成功
	 */
	CANDIDATE_STATUS_ENTRY_PASSED("410", "入职成功"),

	/**
	 * 求职者状态，420入职失败
	 */
	CANDIDATE_STATUS_ENTRY_NOT_PASS("420", "入职失败");

	private final String code;
	private final String info;

	CandidateStatusEnum(String code, String info) {
		this.code = code;
		this.info = info;
	}

	public String getCode() {
		return code;
	}

	public String getInfo() {
		return info;
	}

	public static CandidateStatusEnum fromCode(String code) {
		for (CandidateStatusEnum type : CandidateStatusEnum.values()) {
			if (Objects.equals(type.getCode(), code)) {
				return type;
			}
		}
		return CandidateStatusEnum.CANDIDATE_STATUS_NONE;
	}
}
